iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Modern Web

起步Go!Let's Go!系列 第 27

[ Day 27 ] Go 與 Gin:打造強大的 Web 應用程式 (上)

  • 分享至 

  • xImage
  •  

在前幾天的學習中,已經建立了一個基本的文章管理應用程式,使用 Go、SQLite 和 HTML。今天,將進一步探索如何使用 Gin 框架來提升 Web 應用程式開發體驗。

Gin 是什麼?

Gin 是一個輕量且高效的 Go Web 框架,它提供了快速的路由(routing)、中間件(middleware)和其他一些有用的功能。Gin 的設計目標是簡單易用,並在性能方面表現優越。

安裝 Gin

安裝的步驟非常簡單,只要到 Gin 官網上面就已經有安裝的步驟了,看完之後,我們要先到終端機輸入這段指令:

$ go get -u github.com/gin-gonic/gin

輸入完之後,你可以到 go.mod 這個檔案中查看,這個檔案主要是你在這個專案中安裝的套件。接著,你可以看到一堆跟 Gin 相關的套件在裡面,基本上這樣就安裝結束了。

使用 Gin 來開一個伺服器吧!

安裝完 Gin 之後,我們需要將 Gin import 到我們需要的檔案中:

package main

import (
    "import "github.com/gin-gonic/gin"
)

接著,照著官網上在主程式中撰寫以下程式:

package main

import ( 
    "github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()
	r.GET("/", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "Welcom to your frist GIN Web!!!",
		})
	})
	r.Run() // listen and serve on 0.0.0.0:8080
}

來使用 Gin 的網站

距離成功開起網站只差最後一步了,我們只需執行 go build,並開啟專案,在瀏覽器上輸入 http://127.0.0.1:8080/,此時你可以看到這樣的內容:gin web
如果你看到這個畫面,代表你已經成功使用 Gin 製作了一個傳送資料到前端的後端程式了。

你會好奇,為什麼他呈現的方式不是我們平常看到的網頁的樣子,這是因為剛剛寫的程式中是以 JSON 的方式將資料傳給前端,接著,再由去對這個資料去做處理,簡單來說,這是一個典型的前後端分離的例子,通常在一個專案中也很常用這樣的模式再開發網頁應用,未來有機會再跟大家細講 JSON 跟前後端分離,現在我們就先專注在如何開啟你的第一支使用 Gin 的 Web 應用。

接下來,我們要使用 Gin 來做一個簡單的貼文功能,並且會使用一個 GORM 的套件來協助我們操作資料庫內的東西,那就先介紹一下 GORM 是什麼東西吧!!

什麼是 GORM?

當提到 Gin 就不得不提到 GORM 了,GORM 是一個用於 Go 語言的物件關聯映射(ORM)庫,它的目標是簡化並提高對資料庫的操作。ORM 是一種編程技術,它將應用程序中的對象模型與資料庫模型映射在一起,從而允許你使用面向對象的語言(如 Go)來操作資料庫,而不需要直接使用 SQL 語句,使我們可以更容易操作資料庫。

要怎麼使用 GORM

老樣子,可以到 GORM 的官網上查看如何使用它。
https://ithelp.ithome.com.tw/upload/images/20231011/20151086N4qA016rbp.png
當進到官網,並點進 Docs,這邊幾乎可以找到你想要的資料,稍微往下一點,可以看到它已經告訴你要如何安裝 GORM 跟資料庫了,那我們就照它做一次看看吧!
先到終端機輸入:

go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite

這樣就會在你的專案上安裝 GORM 及 SQLite 了。

使用的方式也很簡單,如下:

package main

import (
	"gorm.io/driver/sqlite"
	"gorm.io/gorm"
)

type Post struct {
	gorm.Model
	Title   string
	Content string
}

func main() {
	db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
	if err != nil {
		panic("failed to connect database")
	}

	db.AutoMigrate(&Post{})

	db.Create(&Post{Title: "學習使用 GORM", Content: "先安裝 GORM"})
}

當你執行 go run main.go 後,你會發現VS Code 左邊的工作區出現了一個名為 test.db 的檔案,是因為程式一開始,就先使用 SQLite 建立了一個名為 test.db 的檔案;隨後,使用 GORM 的 AutoMigrate 方法來自動建立一開始定義好的 Post 結構體,裡面包含了 gorm.Model、Title 以及 Content;最後,在 Post 資料表內建立了一筆資料。
以上是如何簡易地使用 GORM 連接資料庫及新增資料表並創建第一筆資料,更多的使用方法可以在官網上找到。


上一篇
[ Day 26 ] Go 題外話:Goroutine 和 Channel
下一篇
[ Day 28 ] Go 與 Gin:打造強大的 Web 應用程式 (中)
系列文
起步Go!Let's Go!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言